package __链表

/*
https://leetcode.cn/problems/reverse-linked-list/

206. 反转链表
给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。

示例 1：
输入：head = [1,2,3,4,5]
输出：[5,4,3,2,1]

示例 2：
输入：head = [1,2]
输出：[2,1]

示例 3：
输入：head = []
输出：[]
*/
func reverseList(head *ListNode) *ListNode {
	var prev *ListNode //声明前指针
	curr := head       //当前指针指向头节点

	for curr != nil { //只要当前节点不为nil
		next := curr.Next //获取下一个节点
		curr.Next = prev  //当前节点的下一个节点, 指向前节点
		prev = curr       //前节点向后一位, 到当前节点
		curr = next       //当前节点, 移动到下一位Next处
	}

	return prev
}
